Most conventional application programs are menu-driven as opposed to being command-driven. Menu-driven applications provide a list of possible commands or options from which a user may choose, while command-driven applications require users to enter explicit commands. Thus, menu-driven applications are generally easier for the average user to learn than are command-driven applications. Menus are typically implemented as a list of textual or graphical choices (i.e., menu items) from which a user can choose. Thus, menus allow a user to select a menu item, for example, by pointing to the item with a mouse and then clicking on the item. Examples of other methods of selecting menu items include highlighting an item and then hitting the “return” key or “enter” key, and pressing on a menu item through a touch-sensitive screen.
One particularly useful type of menu is a hierarchical menu. An example of a conventional hierarchical menu 100 is illustrated in FIG. 1. As shown in FIG. 1, hierarchical menus 100 typically present a parent menu 115 that has selectable menu items. The selection of each menu item normally causes another menu, or submenu 116 to be displayed next to the currently displayed menu. The submenu 116 has additional menu choices that are related to the selected parent menu item which results in the display of the submenu. The depth of a hierarchical menu can extend in this manner to many levels of submenus (shown as four levels in FIG. 1).
The example menu shown in FIG. 1 illustrates how conventional hierarchical menus 100 generally lay out from left to right across a display screen as menu choices are selected. This menu format provides various advantages such as retaining previous and current menus on the display screen at the same time. This provides a historical menu map as menu selections are made and their corresponding submenus are displayed across the screen. Users can therefore review previous menu selections that have been made while progressing to the most recently displayed menu, making it easier to move between different menu items and different menu levels.
Although such hierarchical menus provide useful advantages, there are scenarios in which their use is impracticable. One such scenario is when hierarchical menus are used on devices having small display screens. The problems presented when attempting to implement conventional hierarchical menus on small-screen devices have generally discouraged the use of hierarchical menus with such devices. FIG. 2 illustrates an example of how the hierarchical menu 100 of FIG. 1 may appear on the display screen of a small-screen device, for example, a PDA 300a. 
As indicated above, hierarchical menus generally lay out across the display screen from left to right. On small-screen devices where the room on the screen is not wide enough to accommodate all of the menus, the menus often lay out across the screen in both directions, from left to right and back again. In this scenario, the menus typically begin to overlap one another, creating various problems. One problem is that the overlapping menus can be confusing to the user, as FIG. 2 illustrates. Overlapping menus can make it difficult for a user to discern previous menu selections which can, in turn, make it difficult to determine how to return to previous menus to make different menu selections. Thus, one of the intended benefits of a hierarchical menu can be undermined when the hierarchical menu is implemented on a small-screen device.
Overlapping menus can also create problems with small-screen devices (as well as others) that employ pen-based or stylus-based touch-sensitive screens. With such devices, it is often difficult to maintain contact continuity between menus on the screen when the menus are overlapping. In other words, it is easy to move off of menus with small-screen, touch-based devices. If continuity is lost when moving from one menu to another, menus will often disappear from the screen, causing the user to have to go back and reactivate the menu from a prior menu. This problem becomes worse when using pen-based devices that “track”. In the present context, the terminology of “tracking” is used to indicate a situation in which a cursor on the screen follows (tracks) the movement of the pen as the pen moves over the screen even though the pen is not touching the screen. Tracking is lost if the pen is pulled too far away from the screen. Thus, pen-based devices that “track” tend to lose more menus when hierarchical menus are employed.
One method of addressing this issue involves displaying submenus in place of a parent menu, and vice versa, when the appropriate menu items are selected from within the parent menus and submenus. FIG. 5 illustrates an exemplary hierarchical in-place menu 500. The dashed lines 506 of FIG. 5 are intended to indicate that each of the menus 502, 504, 510 and 512 of the hierarchical in-place menu 500 are displayed separately from or “in place” of one another. Like a typical hierarchical menu, the depth of a hierarchical in-place menu 500 can extend in this manner to many levels of submenus such as second, third, fourth and fifth levels, with submenus being parent menus to other submenus. Parent menu items selected from within parent menus are displayed within submenus as links back to previous parent menus and are separated from that submenu's items by a divider 514. For example, parent menu item “Launch App” shown in parent menu 502 includes a forward pointer 508 that indicates a submenu will replace parent menu 502 upon selection of “Launch App” from within parent menu 502. In each of the submenus 504, 510 and 512, “Launch App” has a backward pointing arrow to allow going back to a previous menu in the hierarchy.
However, another disadvantage of hierarchical menus in general is the number of menu items presented in each menu. Each of the menus provides the full complement of available menu items. This can be overwhelming for a novice user and irritating to an experienced user. This problem is exacerbated to an extent by the addition of a hierarchical history of parent menus added to the list.
Another approach to the problem of dealing with a full or extended menu, which lists all available menu items at that particular level uses a radio communication device that provides an extended menu and a short menu that is a subset of the extended menu and the ability to select between the two. The short menu is a dynamic menu that is built by the user by selecting menu items from the corresponding extended menu to include in the short menu.
A disadvantage of this approach is that the novice user will be further overwhelmed with having to build the various short menus. The experienced user may be disinclined from having to go through the initial set-up procedure of the short menus.
Another disadvantage of a hierarchical menu system is the requirement of proceeding through each menu of the hierarchy to reach the desired action or menu item. This process adds various steps that can frustrate users, due to the lack of intuitiveness to getting from point A to point B from the user's point of view.
Accordingly, as the demand for small-screen devices capable of running increasingly complex applications continues to grow, the need exists for a way to implement hierarchical menus that overcomes the various disadvantages with conventional hierarchical menus.